package com.efrei.schoolmanager.model;

import java.util.List;

import javax.swing.table.AbstractTableModel;

import com.efrei.schoolmanager.controlers.ControleurClasse;
import com.efrei.schoolmanager.model.obj.Classe;

/**
 * modele d'affichage des classes dans un tableau
 */
public class ModeleListeClasses extends AbstractTableModel {
	private static final long serialVersionUID = 3932218594634138968L;

	private List<Classe> classes;
	private final String[] entetes = { "Nom Classe", "Promotion", "Niveau",
			"Effectif" };

	//private Classe classeFilter;

	// private ControleurEleves controleur;

	public ModeleListeClasses(ControleurClasse controleur) {
		// this.controleur = controleur;
		classes = controleur.getClasses();

	}

	public int getRowCount() {
		return classes.size();
	}

	public int getColumnCount() {
		return entetes.length;
	}

	public String getColumnName(int columnIndex) {
		return entetes[columnIndex];
	}

	public Object getValueAt(int rowIndex, int columnIndex) {
		switch (columnIndex) {
		case 0:
			return classes.get(rowIndex).getNom();
		case 1:
			return classes.get(rowIndex).getPromotion();
		case 2:
			return classes.get(rowIndex).getNiveau();
		case 3:
			return classes.get(rowIndex).getEleves().size();

		default:
			return ""; // Ne devrait jamais arriver
		}
	}

	public Classe getClasse(int index) {
		return classes.get(index);
	}
}
